package cn.neuq.myapplication;

import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

public class MyDBActivity extends AppCompatActivity {
    public MyDBHelper helper = new MyDBHelper(this);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my_db);
        startActivity(new Intent(this, SendSMSSActivity.class));

    }


    public void insert(View view) {
        //以读写方式打开数据库
        SQLiteDatabase db = helper.getWritableDatabase();
        ContentValues values = new ContentValues();
        AlertDialog.Builder builder = new AlertDialog.Builder(MyDBActivity.this);
        EditText idText = (EditText) this.findViewById(R.id.editText2);
        EditText nameText = (EditText) this.findViewById(R.id.editText1);
        //获取输入框的id值和name值
        String id = idText.getText().toString();
        String name = nameText.getText().toString();
        //判断输入的id值在数据库中是否存在
        String[] projection = {
                "id",
                "name"
        };
        //声明并执行查询结果游标
        Cursor c = db.query(
                "my_table",  // 表名
                projection,            // 查询结果 列名
                "id=?",             // where 列名
                new String[]{id},         // where 条件
                null,
                null,
                null
        );
        //判断返回结果，如果范湖的结果中存在这条数据，则提示
        if (c.moveToFirst()) {//非空
            db.close();
            builder.setTitle("提示信息");
            builder.setMessage("该id已经存在，不允许插入");
            builder.setPositiveButton("确定", null);
            builder.show();
            return;
        }
        //如果数据库中不存在该条数据，则插入数据
        values.put("id", id);
        values.put("name", name);
        long newRowId;
        newRowId = db.insert(
                "my_table",
                null,
                values);
        db.close();// 记得关闭数据库操作
        builder.setTitle("提示信息");
        builder.setMessage("插入数据成功");
        builder.setPositiveButton("确定", null);
        builder.show();
    }

    public void query(View view) {
        //以读写方式打开数据库
        SQLiteDatabase db = helper.getWritableDatabase();
        String[] projection = {
                "id",
                "name"
        };
        EditText idText = (EditText) this.findViewById(R.id.editText2);
        EditText nameText = (EditText) this.findViewById(R.id.editText1);
        //获取输入框的id值和name值
        String id = idText.getText().toString();
        String name = nameText.getText().toString();
        //声明并执行查询结果游标
        Cursor c = db.query(
                "my_table",  // 表名
                projection,            // 查询结果 列名
                "id=?",             // where 列名
                new String[]{id},         // where 条件
                null,
                null,
                null
        );
        //判断返回结果，如果查询的结果中存在这条数据，则提取name的值，并置入nameText中
        if (c.moveToFirst()) {//非空
            int nameColumn = c.getColumnIndex("name");
            String n = c.getString(nameColumn);
            nameText.setText(n);
            db.close();
            return;
        }
        db.close();// 关闭数据库操作
        //如果查询结果中不存在该数据，则提示
        AlertDialog.Builder builder = new AlertDialog.Builder(MyDBActivity.this);
        builder.setTitle("提示信息");
        builder.setMessage("没有要查询的数据");
        builder.setPositiveButton("确定", null);
        builder.show();
    }
}
